package Thread;


//匿名内部类创建Thread子类对象
public class Demo3 {
    public static void main(String[] args) {
        Thread t = new Thread(){
            @Override
            public void run() {
                while(true) {
                    System.out.println("hello Thread");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    /*
                     * run 方法不能使用 throws 声明：Thread 类的 run 方法签名是 public void run()，
                     * 它没有声明抛出任何异常。因此，在重写 run 方法时，
                     * 不能使用 throws 关键字声明抛出 InterruptedException 异常，
                     * 只能在 run 方法内部使用 try-catch 块来捕获和处理该异常。
                     * */
                }
            }
        };

        t.start();
        while(true){
            System.out.println("hello main");
            try{
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            /*
            * main 方法使用 throws 的影响：虽然可以在 main 方法中使用 throws 关键字
            * 声明抛出 InterruptedException 异常，但这意味着如果在 main 方法中发生了
            *  InterruptedException 异常，异常会被抛给 Java 虚拟机（JVM）来处理，
            * JVM 通常会终止程序的执行。这可能不是我们期望的结果，
            * 因为我们希望程序在遇到异常时能够进行一些处理，而不是直接终止。
            * */
        }
    }
}
